www.gusucode.com > VC++ 分形图像编辑器源码源码程序 > VC++ 分形图像编辑器源码源码程序\code\AdjustFractal.cpp
//贵州省安顺市第二高级中学 高二一班 蒋伟 //2002.7.1 //请勿修改版权信息 谢谢 //Neil // Download by http://www.NewXing.com // AdjustFractal.cpp : implementation file // #include "stdafx.h" #include "Fractal.h" #include "AdjustFractal.h" #include "mainfrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAdjustFractal dialog CAdjustFractal::CAdjustFractal(CWnd* pParent /*=NULL*/) : CDialog(CAdjustFractal::IDD, pParent) { //{{AFX_DATA_INIT(CAdjustFractal) m_iBranchLength = 0; m_iBranchNum = 0; m_dblCutRate = 0.0; m_iLastBranchLength = 0; m_iLeftAngle = 0; m_iLineWidth = 0; m_iRightAngle = 0; m_bDrawPixel = FALSE; //}}AFX_DATA_INIT m_AdjustMsg = RegisterWindowMessage(MY_ADJUST_MSG); } void CAdjustFractal::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAdjustFractal) DDX_Control(pDX, IDC_COLOR, m_btnColor); DDX_Text(pDX, IDC_EDIT_BRANCH_LENGTH, m_iBranchLength); DDV_MinMaxUInt(pDX, m_iBranchLength, 1, 1000); DDX_Text(pDX, IDC_EDIT_BRANCH_NUM, m_iBranchNum); DDV_MinMaxUInt(pDX, m_iBranchNum, 1, 1000); DDX_Text(pDX, IDC_EDIT_CUT_RATE, m_dblCutRate); DDV_MinMaxDouble(pDX, m_dblCutRate, 0., 1.); DDX_Text(pDX, IDC_EDIT_LAST_BRANCH_LENGTH, m_iLastBranchLength); DDV_MinMaxUInt(pDX, m_iLastBranchLength, 1, 100); DDX_Text(pDX, IDC_EDIT_LEFT_ANGLE, m_iLeftAngle); DDV_MinMaxInt(pDX, m_iLeftAngle, 0, 360); DDX_Text(pDX, IDC_EDIT_LINE_WIDTH, m_iLineWidth); DDV_MinMaxUInt(pDX, m_iLineWidth, 1, 10); DDX_Text(pDX, IDC_EDIT_RIGHT_ANGLE, m_iRightAngle); DDV_MinMaxInt(pDX, m_iRightAngle, 0, 360); DDX_Check(pDX, IDC_CHECK_DRAW_PIXEL, m_bDrawPixel); //}}AFX_DATA_MAP if(pDX->m_bSaveAndValidate) m_Color=m_btnColor.GetColor(); else m_btnColor.SetColor(m_Color); } BEGIN_MESSAGE_MAP(CAdjustFractal, CDialog) ON_WM_QUERYNEWPALETTE() ON_WM_PALETTECHANGED() ON_WM_CREATE() //{{AFX_MSG_MAP(CAdjustFractal) ON_BN_CLICKED(ID_APPLY_NOW, OnApplyNow) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CAdjustFractal message handlers void CAdjustFractal::OnApplyNow() { if(UpdateData()) { ::PostMessage(((CMainFrame*)AfxGetMainWnd())->GetActiveView()->m_hWnd,m_AdjustMsg,ML_APPLY,0); } } void CAdjustFractal::OnLButtonDown(UINT nFlags, CPoint point) { CDialog::OnLButtonDown(nFlags, point); SendMessage(WM_NCLBUTTONDOWN,HTCAPTION,0); } BOOL CAdjustFractal::OnQueryNewPalette() { // CG: This function was added by the Palette Support component if (m_pPalette == NULL) return FALSE; // BLOCK { CClientDC dc(this); CPalette* pOldPalette = dc.SelectPalette(m_pPalette, GetCurrentMessage()->message == WM_PALETTECHANGED); UINT nChanged = dc.RealizePalette(); dc.SelectPalette(pOldPalette, TRUE); if (nChanged == 0) return FALSE; } Invalidate(); return TRUE; } void CAdjustFractal::OnPaletteChanged(CWnd* pFocusWnd) { // CG: This function was added by the Palette Support component if (pFocusWnd == this || IsChild(pFocusWnd)) return; OnQueryNewPalette(); } CPalette* CAdjustFractal::SetPalette(CPalette* pPalette) { // CG: This function was added by the Palette Support component // Call this function when the palette changes. It will // realize the palette in the foreground to cause the screen // to repaint correctly. All calls to CDC::SelectPalette in // painting code should select palettes in the background. CPalette* pOldPalette = m_pPalette; m_pPalette = pPalette; OnQueryNewPalette(); return pOldPalette; } int CAdjustFractal::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; m_pPalette = NULL; return 0; }